2005/10/12

情報量と表示に必要な桁数の関係(ロカポ誕生の記録:2)

地球上のあらゆる地点を1メートルの精度で表すために必要なデータ量を、次のように計算してみた。

地球の子午線が 40,000,000 メートルなので、1メートル精度であればそのまま40,000,000 ステップが必要である。全世界では

20,000,000 ステップ(緯度方向:子午線の半分)
×
40,000,000 ステップ(経度方向)
= 8×10の14乗 ステップ

が必要である。
技術的な観点で言うと、8×10の14乗 ステップは49.507ビットの情報量ということになる。この情報量を表すには、いろいろな基底の記数法(2進法、16進法、10進法など)で表すと、必要とされる桁数は以下のようになる。


50 桁: 2進法(Binary)
15 桁: 10進法(Decimal)
13 桁: 16進法(HEX)
11 桁: 26進法
10 桁: 36進法
9 桁: 60進法
4 桁: 10000進法

もし、10進法であれば最低15桁必要であり、クレジットカード番号(16桁)のように覚えやすいコードとは言えない。

もし16進法(0~9とA~Eを使う))なら13桁に短縮されるが、"28a6f6b021cf3" は電話番号のように覚えやすいとは言えない。

も し中国語の漢字(や他のユニコードの文字)を10000文字使用して、10000進法にすればたった4文字で表現することができる。しかし、実際にこの ようなコードが使いにくいことは容易に想像できた。それに、○進法の○の数値が大きくなればなるほど、桁数の短縮効果は少なくなってくることが分かる。し たがって、基数を大きくするより文字種を扱いやすい数に絞る方が、効果が高いかもしれない。

現段階で選択肢は二つあった。
1.情報量そのものを減らす。
精度を30メートルなどに落とす
コードの適用エリアを絞る
2.情報量は減らさない
ただし、扱いやすいコードを開発する必要がある。


既 存の「ジオコード」は1の方法を採用しているものが多い。例えばデンソーの「マップコード」は適用地域を日本国内(のさらに陸地付近)に限定し、精度を ナビゲーション用に30メートルと割り切ることで、10桁の数字で表すことを可能にしている。マップコードは数字(=10進法)を使っているので、10倍 の精度(3メートルの精度)を表すには、緯度方向と経度方向にもう一桁ずつ必要であり、12文字で表す拡張仕様になっている。

私はユニ バーサルなコード、つまり世界のどこでも使用可能なコードにしたかったことと、測量などの本格的なものを除いて、人間が扱うさまざまな用途に対応 したかったので、1メートルの制度も地球規模の適用範囲も譲れませんでした。したがって、2番目の方法を模索していくことに決めました。
ただ、この時点ではどうやっていけば良いのか、まったくアイデアの無い状態でした。


続く..

0 件のコメント: